#ifndef LOGIN_DIALOG_H
#define LOGIN_DIALOG_H

#include <QDialog>
#include "global.h"
#include <QMap>
#include "rsacrypt.h"

namespace Ui {
class Login_Dialog;
}

class Login_Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Login_Dialog(QWidget *parent = nullptr);
    ~Login_Dialog();

signals:
       void switchRegister();
       void switchResetPass();
       void switchWelcome();

       void sig_connect_tcp(ServerInfo si);
private:
    Ui::Login_Dialog *ui;
    RsaCrypt *rsacrypt_;
    //存储Edit输入格式报错
    QMap<TipErr, QString> _tip_errs;

    uint16_t _uid;
    QString _token;

    //添加/删除Tiperr
    void AddTipErr(TipErr te, QString tips);
    void DelTipErr(TipErr err);
    //check函数
    bool checkUserValid();
    bool checkPassValid();

    void showTip(QString str,bool is_ok);

private slots:
    void SlotLogin();
    void slot_login_mod_finish(ReqId id, QString str, ErrorCodes er);
    void slot_tcp_con_finish(bool bsuccess);
    void slot_login_failed(int err);
};

#endif // LOGIN_DIALOG_H
